function [NewExoTimeStates,NewPrices] = SimulationExoTimeStatesNoShock(OldExoTimeStates,States,pproc)

% Get current sugar price, and simulate new.
CurrentSugar = pproc.y{1}(OldExoTimeStates,1); % Here it doesn't matter which region to pick, the sugar price part is the same for all regions
CurrentSugar = CurrentSugar(1); % All elements of CurrentSugar should be the same.
NewSugar = pproc.sugar.Cte + pproc.sugar.AR*CurrentSugar; % + randn(1,1)*pproc.sugar.Sigma;

NewPrices.Sugar = NewSugar;

NewExoTimeStates = nan(size(OldExoTimeStates));

% Get  
Regions  = unique(States.RegionsForExoStates);
NRegions = numel(Regions);

for r = Regions'
    CurrentOut = pproc.y{r}(OldExoTimeStates(States.RegionsForExoStates == r),2);
    CurrentOut = CurrentOut(1);
    NewOut = pproc.outside{r}.Cte + pproc.outside{r}.AR*CurrentOut; % + randn(1,1)*pproc.outside{r}.Sigma;
    
    NewPrices.OutReturn(r) = NewOut;
    
    % Now we need to classify new prices:
    SugOut = [NewSugar, NewOut];
    
    Ny = size(pproc.y{r},1);
    Nd = size(SugOut,1);
    
    K1 = kron(SugOut(:,1),ones(1,Ny)) - kron(pproc.y{r}(:,1)',ones(Nd,1));
    K1 = abs(K1);
    
    K2 = kron(SugOut(:,2),ones(1,Ny)) - kron(pproc.y{r}(:,2)',ones(Nd,1));
    K2 = abs(K2);
    
    [~,exo_idx] = min(K1+K2,[],2); 
    clear K1 K2
    
    %NumInOut = sum(OutDS.Index == r);
    NewExoTimeStates(States.RegionsForExoStates == r,:) = exo_idx;
    
end
    